package handler

import (
	"fmt"
	"gopatch/file"
	"gopatch/global"
)

// normalHandler 不开启自动匹配的处理类
type normalHandler struct{}

// 判断是否使用此处理类
func (handler *normalHandler) judgeHandler() bool {
	if !global.AutoCompare {
		return true
	}
	return false
}

// 从同名文件中选择指定的补丁文件
func (handler *normalHandler) chooseFile(gitUpdateFile, filenameWithoutExt string, sameNameFiles []file.FileStruct) []file.FileStruct {
	// 得到的补丁文件绝对路径
	var patchFiles []file.FileStruct

	if sameNameFiles == nil || len(sameNameFiles) <= 0 {
		// 没有得到对应的文件
		global.AppendMsg(global.ERROR, fmt.Sprintf("文件 %s 没有找到对应的", filenameWithoutExt))
	} else if len(sameNameFiles) == 1 {
		// 得到的文件只有一个，直接放进去
		fileT := sameNameFiles[0]
		patchFiles = append(patchFiles, fileT)
	} else {
		// 得到的文件很多，手动选择
		chooseUpdateFiles := handleInput(filenameWithoutExt, sameNameFiles)
		patchFiles = append(patchFiles, chooseUpdateFiles...)
	}

	return patchFiles
}
